/* Include at least these
   #include <uuid/uuid.h>
   #include <nit/list.h>
   And these if INB_SYS_NO_INCS is defined
   #include "des.h"
   #include "cell.h"
   #include "frm.h"
   #include "rel.h"
   #include "pur.h"
   #include "fld.h"
   #include "prd.h"
*/

#ifndef INB_SYS_NO_INCS
# ifndef _UUID_UUID_H
#  error "Please include uuid/uuid.h before inb/sys.h"
# endif
# ifndef NIT_LIST
#  error "Please include nit/list.h before inb/sys.h"
# endif
# include "des.h"
# include "cell.h"
# include "sym.h"
# include "rel.h"
# include "pur.h"
# include "frm.h"
# include "fld.h"
# include "prd.h"
#endif

#define INB_FRM_SYM  (&inb_frm_sym.frm)
#define INB_FRM_CELL (&inb_frm_cell.frm)
#define INB_FRM_FRM  (&inb_frm_frm.frm)
#define INB_FRM_PUR  (&inb_frm_pur.frm)
#define INB_FRM_FLD  (&inb_frm_fld.frm)
#define INB_FRM_ANY  (&inb_frm_any.frm)

#define INB_REL_AND  (&inb_rel_and.rel)
#define INB_REL_OR   (&inb_rel_or.rel)
#define INB_REL_FRST (&inb_rel_frst.rel)
#define INB_REL_REST (&inb_rel_rest.rel)

#define INB_PUR_AXIOM (&inb_pur_axiom.pur)
#define INB_PUR_ANY (&inb_pur_any.pur)

#define INB_PRD_CAR (&inb_prd_car.prd)
#define INB_PRD_CDR (&inb_prd_cdr.prd)

extern Inb_frm_tagd inb_frm_sym;
extern Inb_frm_tagd inb_frm_cell;
extern Inb_frm_tagd inb_frm_frm;
extern Inb_frm_tagd inb_frm_pur;
extern Inb_frm_tagd inb_frm_fld;
extern Inb_frm_tagd inb_frm_any;

extern Inb_rel_tagd inb_rel_and;
extern Inb_rel_tagd inb_rel_or;
extern Inb_rel_tagd inb_rel_frst;
extern Inb_rel_tagd inb_rel_rest;

extern Inb_pur_tagd inb_pur_axiom;
extern Inb_pur_tagd inb_pur_any;

extern Inb_prd_tagd inb_prd_car;
extern Inb_prd_tagd inb_prd_cdr;

void
inb_print(void *dat);
